#include "device.h"
//void Opto_switch_Init(void)
//{
//	GPIO_InitTypeDef  GPIO_InitStruct = {0};

//    LEFT_FORWARD_PORT_CLK_ENABLE();
//	RIGHT_FORWARD_PORT_CLK_ENABLE ();
//	LEFT_BACK_PORT_CLK_ENABLE();
//	RIGHT_BACK_PORT_CLK_ENABLE();
//	SIDE_PORT_CLK_ENABLE();
//	LEFT_BULLET_PORT_CLK_ENABLE ();
//	RIGHT_BULLET_PORT_CLK_ENABLE();
//	SPARE_PORT_CLK_ENABLE();
//	LED_RED_PORT_CLK_ENABLE();
//	LED_BLUE_PORT_CLK_ENABLE();
//		
//    GPIO_InitStruct.Mode  = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull  = GPIO_NOPULL;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

//    GPIO_InitStruct.Pin = LEFT_FORWARD_PIN;
//    HAL_GPIO_Init(LEFT_FORWARD_PORT, &GPIO_InitStruct);
//	  
//	GPIO_InitStruct.Pin = RIGHT_FORWARD_PIN;
//    HAL_GPIO_Init(RIGHT_FORWARD_PORT, &GPIO_InitStruct);
//	  
//	GPIO_InitStruct.Pin = LEFT_BACK_PIN;
//    HAL_GPIO_Init(LEFT_BACK_PORT, &GPIO_InitStruct);
//	
//	GPIO_InitStruct.Pin = RIGHT_BACK_PIN;
//    HAL_GPIO_Init(RIGHT_BACK_PORT, &GPIO_InitStruct);
//	
//	GPIO_InitStruct.Pin = SIDE_PIN;
//    HAL_GPIO_Init(SIDE_PORT, &GPIO_InitStruct);
//	
//	GPIO_InitStruct.Pin = LEFT_BULLET_PIN;
//    HAL_GPIO_Init(LEFT_BULLET_PORT, &GPIO_InitStruct);
//	
//	GPIO_InitStruct.Pin =RIGHT_BULLET_PIN;
//    HAL_GPIO_Init(RIGHT_BULLET_PORT, &GPIO_InitStruct);
//	
//	GPIO_InitStruct.Pin = SPARE_PIN;
//    HAL_GPIO_Init(SPARE_PORT, &GPIO_InitStruct);
//	
//	GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull  = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//	
//	GPIO_InitStruct.Pin = LED_RED;
//	HAL_GPIO_Init(LED_1_PORT, &GPIO_InitStruct);
//	
//	GPIO_InitStruct.Pin = LED_BLUE;
//	HAL_GPIO_Init(LED_2_PORT, &GPIO_InitStruct);
//}

void Opto_switch_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStruct = {0};

    POSITION_1_PORT_CLK_ENABLE();
	POSITION_2_PORT_CLK_ENABLE();
	POSITION_3_PORT_CLK_ENABLE();
	POSITION_4_PORT_CLK_ENABLE();
    POSITION_5_PORT_CLK_ENABLE();
	POSITION_6_PORT_CLK_ENABLE ();
	POSITION_7_PORT_CLK_ENABLE();
	POSITION_8_PORT_CLK_ENABLE();
	LED_RED_PORT_CLK_ENABLE();
	LED_BLUE_PORT_CLK_ENABLE();
		
    GPIO_InitStruct.Mode  = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull  = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

    GPIO_InitStruct.Pin = POSITION_1_PIN;
    HAL_GPIO_Init(POSITION_1_PORT, &GPIO_InitStruct);
	  
	GPIO_InitStruct.Pin = POSITION_2_PIN;
    HAL_GPIO_Init(POSITION_2_PORT, &GPIO_InitStruct);
	  
	GPIO_InitStruct.Pin = POSITION_3_PIN;
    HAL_GPIO_Init(POSITION_3_PORT, &GPIO_InitStruct);
	
	GPIO_InitStruct.Pin = POSITION_4_PIN;
    HAL_GPIO_Init(POSITION_4_PORT, &GPIO_InitStruct);
	
	GPIO_InitStruct.Pin = POSITION_5_PIN;
    HAL_GPIO_Init(POSITION_5_PORT, &GPIO_InitStruct);
	
	GPIO_InitStruct.Pin = POSITION_6_PIN;
    HAL_GPIO_Init(POSITION_6_PORT, &GPIO_InitStruct);
	
	GPIO_InitStruct.Pin = POSITION_7_PIN;
    HAL_GPIO_Init(POSITION_7_PORT, &GPIO_InitStruct);
	
	GPIO_InitStruct.Pin = POSITION_8_PIN;
    HAL_GPIO_Init(POSITION_8_PORT, &GPIO_InitStruct);
	
	GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull  = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
	
	GPIO_InitStruct.Pin = LED_RED;
	HAL_GPIO_Init(LED_1_PORT, &GPIO_InitStruct);
	
	GPIO_InitStruct.Pin = LED_BLUE;
	HAL_GPIO_Init(LED_2_PORT, &GPIO_InitStruct);
	
	HAL_GPIO_WritePin(LED_1_PORT,LED_RED,GPIO_PIN_RESET);
	HAL_GPIO_WritePin(LED_2_PORT,LED_BLUE,GPIO_PIN_RESET);
}

//OP_STATE Opto_switch_Read_State(OP_NUM op_num)
//{
//    GPIO_PinState state = GPIO_PIN_SET;
//   
//    switch(op_num)
//    {
//        case L_FORWARD:
//            state = HAL_GPIO_ReadPin(LEFT_FORWARD_PORT, LEFT_FORWARD_PIN);
//            break;

//        case R_FORWARD:
//            state = HAL_GPIO_ReadPin(RIGHT_FORWARD_PORT, RIGHT_FORWARD_PIN);
//            break;

//        case L_BACK:
//            state = HAL_GPIO_ReadPin(LEFT_BACK_PORT, LEFT_BACK_PIN);        
//            break;

//        case R_BACK:
//            state = HAL_GPIO_ReadPin(RIGHT_BACK_PORT, RIGHT_BACK_PIN);                
//            break;
//				case SIDE:
//            state = HAL_GPIO_ReadPin(SIDE_PORT, SIDE_PIN);                
//            break;
//				case L_BULLET:
//            state = HAL_GPIO_ReadPin(LEFT_BULLET_PORT, LEFT_BULLET_PIN);                
//            break;
//				case R_BULLET:
//            state = HAL_GPIO_ReadPin(RIGHT_BULLET_PORT, RIGHT_BULLET_PIN);                
//            break;
//				case SPARE:
//            state = HAL_GPIO_ReadPin(SPARE_PORT, SPARE_PIN);                
//            break;
//        
//        default:
//            break;
//    }

//    if(state == GPIO_PIN_RESET)
//        return OP_TOUCH;
//    else
//        return OP_NOT_TOUCH;
//}

